package LeetCode;
/**
 * 给定一个头结点为 head 的非空单链表，返回链表的中间结点。
 * 如果有两个中间结点，则返回第二个中间结点。
 * 思路：快慢指针
 */
public class Num876 {
    public ListNode middleNode(ListNode head) {
        //count遍历
//        int count=0;
//        ListNode node=head;
//        while(node!=null){
//            count++;
//            node=node.next;
//        }
//        int count1=count/2;
//        ListNode cur=head;
//        for (int i = 0; i < count1; i++) {
//            cur=cur.next;
//        }
//        return cur;
        //快慢指针
        ListNode fast=head;
        ListNode low=head;
        while(fast!=null&&fast.next!=null) {
            fast = fast.next.next;
            low = low.next;
        }
        return low;
    }
}

